home *** CD-ROM | disk | FTP | other *** search
- /*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
- | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved
- |
- | This Library is part of IDC's TesSeRact Development Tools product
- | line. For information about other IDC products, call 1-215-884-3373.
- *----------------------------------------------------------------------*
- | <TCXLfar.h> : Definitions and prototypes for handling explicit, typed
- | far-pointers as used internally in TCXL 5.5.
- *-------------------------------[ NOTES ]------------------------------*
- | 1) The _XxxFar() aliases take full far pointers and the _FarXxx()
- | functions take separate segments and offsets.
- | 2) The MK_FP() and MK_FPT() macros will override system definitions
- | and provide compiler-independence.
- | 3) MK_FPT() is *very* useful in C++, where void pointers are not
- | usually allowed without bizarre casts.
- *----------------------------------------------------------------------*
- | PGS : $Id: tcxlfar.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $
- | $Log: tcxlfar.h $
- | Revision 5.51 90/10/01 00:00:00 MLM
- | TCXL 5.51
- |
- *======================================================================*/
- #ifndef _TCXLfar_
- # define _TCXLfar_ 1 /* only once! */
- # ifndef _TCXLdef_
- # include <TCXLdef.h> /* standards */
- # endif
-
- #ifdef MK_FP /* use local definitions */
- # undef MK_FP
- #endif /* anonymous far-pointer */
- #define MK_FP(s,o) ((AnyFP) (((DwdT)(s) << 16) | (WrdT)(o)))
- #ifdef MK_FPT
- # undef MK_FPT
- #endif /* typed far-pointer */
- #define MK_FPT(t,s,o) ((t FAR *) (((DwdT)(s) << 16) | (WrdT)(o)))
-
- /*------------------------[ Function prototypes ]----------------------*/
-
- #ifdef __cplusplus /* no mangling, please */
- extern "C" {
- #endif
- VOID PAS _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n);
- VOID PAS _CpyFar(BytFP t, BytFP f, WrdT n); /* alias */
- VOID PAS _FarGet(BytP p, WrdT s, WrdT o, WrdT n);
- VOID PAS _GetFar(BytP t, BytFP f, WrdT n); /* alias */
- VOID PAS _FarPut(WrdT s, WrdT o, BytP p, WrdT n);
- VOID PAS _PutFar(BytFP t, BytP f, WrdT n); /* alias */
- #ifdef __cplusplus
- }
- #endif
- #endif /* _TCXLfar_ -- End of TCXLfar.h */